package Negocio;

import java.util.ArrayList;
import java.util.List;

import DTO.DTO_Ingrediente;
import DTO.DTO_Receta;
import DTO.DTO_RecetaCombo;
import DTO.DTO_RecetaSimple;
import Entities.Entity_Receta;
import Entities.Entity_RecetaCombo;

public class RecetaCombo extends Receta {

	private List<Receta> recetas;

	public RecetaCombo(int idReceta, String modoPreparacion, float tiempoElaboracion, List<Ingrediente> ingredientes, float cantidad, List<Receta> recetas) {
		super(idReceta, modoPreparacion, tiempoElaboracion, ingredientes, cantidad);
		this.recetas = recetas;
	}

	
	public RecetaCombo(DTO_RecetaCombo r) {
		super(r);
		recetas = new ArrayList<Receta>();
		
		for (DTO_Receta re : r.getRecetas()){
			if(re instanceof DTO_RecetaCombo){
				recetas.add(new RecetaCombo((DTO_RecetaCombo) re));
			}else{
				recetas.add(new RecetaSimple((DTO_RecetaSimple) re));
			}
		}
		
	}


	public RecetaCombo(Entity_RecetaCombo receta) {
		super(receta);
	}


	//GET & List
	public List<Receta> getRecetas() {
		return recetas;
	}

	public void ListRecetas(List<Receta> recetas) {
		this.recetas = recetas;
	}

	//METODOS DE NEGOCIO
	@Override
	public Ingrediente obtenerIngrediente() {
		// TODO Auto-generated method stub
		return null;
	}


	@Override
	public DTO_RecetaCombo toDTO() {
		DTO_RecetaCombo rc = new DTO_RecetaCombo();
		rc.setCantidad(cantidad);
		rc.setIdReceta(idReceta);
		rc.setModoPreparacion(modoPreparacion);
		rc.setTiempoElaboracion(tiempoElaboracion);
		List<DTO_Receta> aux_rs = new ArrayList<DTO_Receta>();
		for(Receta e: recetas)
			aux_rs.add(e.toDTO());
		rc.setRecetas(aux_rs);
		List<DTO_Ingrediente> aux_ing = new ArrayList<DTO_Ingrediente>();
		for(Ingrediente e: ingredientes)
			aux_ing.add(e.toDTO());
		rc.setIngredientes(aux_ing);
		return rc;
	}


	@Override
	public Entity_Receta toEntity() {
		// TODO Auto-generated method stub
		return null;
	}
	
	

}
